Skip to content

Add deterministic audio fixture smoke test - #16

Merged
slittycode merged 8 commits into
mainfrom
claude/add-audio-fixture-test-3ZmTA
May 10, 2026
Merged

Add deterministic audio fixture smoke test#16
slittycode merged 8 commits into
mainfrom
claude/add-audio-fixture-test-3ZmTA

Conversation

@slittycode

Copy link
Copy Markdown
Owner

Summary

  • Adds apps/backend/tests/test_audio_fixture.py — an end-to-end smoke test that generates a deterministic composite WAV fixture (A-minor triad + 120 BPM clicks + gentle fade), runs the full analyze.py pipeline, and asserts 27 pinned values across BPM, key, LUFS, spectral balance, stereo, detectors, and schema completeness
  • Catches silent value regressions in the integrated DSP pipeline that structural/type-only tests would miss
  • Fixture runs in ~3s with full mode (no --fast), exercising all Tier 3 detectors

Test plan

  • All 27 new tests pass: ./venv/bin/python -m unittest tests.test_audio_fixture -v
  • Full suite (345 tests) passes with no regressions: ./venv/bin/python -m unittest discover -s tests

@slittycode slittycode self-assigned this May 8, 2026
@slittycode

Copy link
Copy Markdown
Owner Author

@claude resolve conflicts

Generates a composite 8s stereo WAV (A-minor triad + 120 BPM clicks + fade)
and runs the full analyze.py pipeline, asserting pinned numeric values to
catch silent value regressions across BPM, LUFS, spectral balance, key
detection, and detail objects.

https://claude.ai/code/session_01STZTd89GqeF5qd46r5wJUz
@slittycode
slittycode force-pushed the claude/add-audio-fixture-test-3ZmTA branch from a4d6582 to 4ab1c6d Compare May 8, 2026 08:43
claude added 7 commits May 8, 2026 08:48
Resolve conflict markers left by ec4ea3b in types.ts (barrel re-export),
analysisRunsClient.ts (remove duplicate fetchJson, use httpClient import),
and spectralArtifactsClient.ts (use fetchJson from httpClient). Also add
missing `path` field to parseArtifact to match AnalysisRunArtifact interface.

https://claude.ai/code/session_01STZTd89GqeF5qd46r5wJUz
Resolve conflict keeping the modular imports (server_upload, server_phase1,
server_phase2) which match the refactored architecture on this branch.

https://claude.ai/code/session_01STZTd89GqeF5qd46r5wJUz
…rver.py

The conflict resolution dropped `import upload_limits` which is still used
directly in several places. Also fix one `uuid.uuid4()` call to use the
already-imported `uuid4` function.

https://claude.ai/code/session_01STZTd89GqeF5qd46r5wJUz
The parseArtifact function now requires a path field on AnalysisRunArtifact.
Update all 19 stub sourceAudio objects in smoke tests to include it.

https://claude.ai/code/session_01STZTd89GqeF5qd46r5wJUz
Not all API responses include path yet; make the type and parser
tolerant of missing path to avoid runtime crashes in smoke tests
against older stub fixtures.

https://claude.ai/code/session_01STZTd89GqeF5qd46r5wJUz
The HEAD-side versions of analysisRunsClient.ts and spectralArtifactsClient.ts
(using httpClient.fetchJson) were causing smoke test failures. Revert to the
c3e6e0b versions which used buildConfiguredRequestInit and had passing CI on
PR #15. Keep barrel types.ts since the branch has code that needs styleProfile
from types/interpretation.ts.

https://claude.ai/code/session_01STZTd89GqeF5qd46r5wJUz
@slittycode
slittycode merged commit cbe9308 into main May 10, 2026
2 of 3 checks passed
@slittycode
slittycode deleted the claude/add-audio-fixture-test-3ZmTA branch May 10, 2026 03:54
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants